Workflow Management Systems (WfMSs) and Human Task Management Systems (HTMSs) support the integration of human beings into business processes. Humans interact with these systems in different ways. The most common way a user accesses work items or human tasks managed by such a system is by retrieving his or her task lists and selecting (or checking out) the tasks he or she is planning to work with at a given point in time. As tasks are often assigned to more than one person, it is important that the system keeps track of who works on which task, and particularly, which tasks are waiting for someone to start working on them.
Most implementations of these systems use database technology to internally represent these tasks. Database management systems (DBMS) store extensive amounts of organized information for access by users of the systems. In a database system environment, the system responds to specific queries from the user as to which data from the database to examine, retrieve and/or present. Typically, the Workflow Management Systems (WfMSs) and Human Task Management Systems (HTMSs) run queries on behalf of a user in a particular syntax of a particular database language that is used by the system, such as the Structured Query Language (SQL) format.
Database queries are triggered by users and executed by the database system to retrieve task lists. Transactional database operations are used to “check out” a task for exclusive use by a user, and later to “check in” the same task after work on it has been finished.
Modern systems use a normalized database schema in order to keep costs low for create, retrieve, update, and delete operations (CRUD operations) of a database. In large systems with many thousands of users and hundreds of thousands of active tasks, the time to retrieve a list of tasks from the system may become an issue when using the standard database query approach. As a consequence, the costs in the database to carry out task list queries become huge, since complex database processing is required to present the entirety of data to users. In large applications, the time to retrieve even a short task list may be many seconds.
One way to mitigate this problem is to cache task lists on the client. The disadvantage of this approach is the amount of memory required on the client for caching the data, the complex programming model for the client which has to manage the cache, and the relative lack of timeliness of the data. Another way is to cache task lists on the Workflow Management Systems (WfMSs) or Human Task Management Systems (HTMSs), usually running on a middle tier application server. However, here the memory consumption problem is even more severe, as task lists are different for each user and therefore have to be cached for each user individually. Maintaining cache content is difficult and complicates the implementation of the Workflow Management Systems (WfMSs) and the Human Task Management Systems (HTMSs). WfMSs and HTMSs that run on a cluster are even more severely impacted, as the more members of the cluster are present, the more processing must be performed in order to keep cache contents consistent across the various cluster members.
Accordingly, what is needed is the ability to utilize advanced database technologies together with an intelligent data access mechanism to cache task lists on a database server and allow reduced time in retrieving tasks. The present invention addresses such a need.